package com.chencq.core.service.base;

import java.util.List;

import com.chencq.core.entity.Pager;

/**
 * 基础业务逻辑类，其他service继承此service获得基本的业务
 * 
 * 
 * @param <T>
 */

public interface BaseService<T> {

	/**
	 * 保存一个对象
	 * 
	 * @param o
	 *            对象
	 * @return 对象的ID
	 */
	public String save(T o);

	/**
	 * 删除一个对象
	 * 
	 * @param o
	 *            对象
	 */
	public void delete(T o);

	/**
	 * 更新一个对象
	 * 
	 * @param o
	 *            对象
	 */
	public void update(T o);

	/**
	 * 保存或更新一个对象
	 * 
	 * @param o
	 *            对象
	 */
	public void saveOrUpdate(T o);

	/**
	 * 通过主键获得对象
	 * 
	 * @param c
	 *            类名.class
	 * @param id
	 *            主键
	 * @return 对象
	 */
	public T getById(String id);

	public Long countHQL(T o);

	public List<T> findAll(T o);

	Pager findPageList(T o, Integer pageNo, Integer pageSize);
}
